package cn.cdeden.knowledge.domain.dto;

import cn.cdeden.common.translation.annotation.Translation;
import cn.cdeden.common.translation.constant.TransConstant;
import cn.cdeden.knowledge.domain.FilesDistributeTree;
import cn.cdeden.resource.api.domain.RemoteFilesDownload;
import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.ToStringSerializer;
//import io.swagger.annotations.ApiModelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import io.github.linpeilie.annotations.AutoMappers;
import lombok.*;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
* @author Chen
* @date 2023-11-29
*/
@Data
@Builder
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
@AutoMappers({@AutoMapper(target = TeamRelevanceRoleDto.class)})

public class TeamRelevanceRoleDto implements Serializable {
    private static final long serialVersionUID = 1L;

//    @ApiModelProperty(value = "id")
    /** 防止精度丢失 */
    @JSONField(serializeUsing = ToStringSerializer.class)
    private Long id;

//    @ApiModelProperty(value = "团队id")
    private String teamId;

//    @ApiModelProperty(value = "角色id")
    private String roleId;

//    @ApiModelProperty(value = "树节点id")
    private String treeNodeId;

//    @ApiModelProperty(value = "对象id")
    private Long objectId;

//    @ApiModelProperty(value = "对象类型")
    private Integer objectType;

//    @ApiModelProperty(value = "对象名称")
    private String objectName;

//    @ApiModelProperty(value = "角色名称")
    private String roleName;

//    @ApiModelProperty(value = "角色等级")
    private int roleRank;

//    @ApiModelProperty(value = "权限json")
    private String permJson;

//    @ApiModelProperty(value = "是否继承")
    private Integer isExtend;

//    @ApiModelProperty(value = "创建者")
    private String createId;

//    @ApiModelProperty(value = "创建者姓名")
    @Translation(type = TransConstant.USER_ID_TO_NICKNAME)
    private String creator;

//    @ApiModelProperty(value = "创建时间")
    private Date createTime;

//    @ApiModelProperty(value = "更新者")
    private String updateId;

//    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
}
